<?php 


	require_once 'Model/LoginHandler.php';
	class TestAll{
		
		private $loginHandler;
		
		/**
		 * Testfunktion som testar inloggningen
		 * @return bool
		 */
		public function __construct($loginHandler){
			$this->loginHandler = $loginHandler;
		}
		public function TestLogin()
		{
			$this->loginHandler->DoLogout();
						
			// Kontrollerar om användaren verkligen är utloggad
			if ($this->loginHandler->IsLoggedIn() !== FALSE) {
				echo "Fel. Användaren skall vara utloggad <br/>";
				return FALSE;				
			}
			
			// Testar inloggning med fel användarnamn samt lösenord
			if($this->loginHandler->DoLogin("felanvandarnamn", "felpassword") !== FALSE){
				echo "Fel. Inloggningen skall misslyckas <br/>";
				return FALSE;
			}
			
			// Testar inloggning med rätt användarnamn men fel lösenord
			if($this->loginHandler->DoLogin("hans", "fel") !== FALSE){
				echo "Fel. Inloggningen skall misslyckas <br/>";
				return FALSE;
			}
			
			// Testar inloggning med rätt användarnamn samt lösenord
			if($this->loginHandler->DoLogin("hans", "hej") !== TRUE){
				echo "Fel. Inloggningen skall lyckas <br/>";
				return FALSE;
			}
			
			// Kontrollerar om användaren nu är inloggad
			if ($this->loginHandler->IsLoggedIn() !== TRUE) {
				echo "Fel. Användaren skall vara inloggad <br/>";
				return FALSE;
			} 
			
			// Loggar ut		
			$this->loginHandler->DoLogout();
			
			// Kontrollerar om användaren nu är inloggad
			if ($this->loginHandler->IsLoggedIn() !== FALSE) {
				echo "Fel. Användaren skall vara utloggad <br/>";
				return FALSE;
			} 
			
			return TRUE;	
		}
	}
	
	$loginHandler = new LoginHandler();
	
	$testAll = new TestAll($loginHandler);
	
	if ($testAll->TestLogin() == TRUE){
		echo "Logintest Testet lyckades";
	}else{
		echo "Logintest misslyckades";
	}
	
